Networked storage arrays may provide an enterprise level solution for secure and reliable data storage. Traditional storage servers include arrays of disk drives that are capable of performing about 100-10/00 input/output operations per second (IOPS). In traditional storage servers, a single processing device performs all physical to logic isolation and manages data accesses to all drives of a storage server. The single processing device is able to manage the IOPS for all of the disk drives without acting as a performance bottleneck.
With the introduction of solid state storage devices (e.g., solid state drives (SSDs) such as Flash drives), the speed of networked storage arrays has improved dramatically because a single SSD is capable of performing about 1 million IOPS. However, a single processing device is not generally capable of handling more than a few million IOPS, and so becomes a bottleneck when it manages the IOPS for multiple SSDs.
FIG. 1 illustrates a prior art figure showing a data path 145 for a traditional storage server 100. The storage server 100 includes a processing device 105, a root complex 110, a memory 115, a switch 120, and multiple endpoint drives (e.g., disk drives) 125, 130. All I/O operations pass through the root complex 110 for the storage server 100 to an endpoint drive 125, 130. Accordingly, the data path 145 passes through the processing device 105 and through the root complex 110. As a result, the processing device 105 and root complex 110 can act as a bottleneck for the storage server 100 and limit performance.